-keep !public abstract !final @com.company.Something class * {
  public !static <fields>;
  !public !protected ! native <methods>;
}