docs: public static Dynamic ofField(FieldDescription.InDefinedShape fieldDescription) {
              if (!fieldDescription.isStatic() || !fieldDescription.isFinal()) {
                  throw new IllegalArgumentException("Field must be static and final: " + fieldDescription);
              }
              boolean selfDeclared = fieldDescription.getType().isPrimitive()
                      ? fieldDescription.getType().asErasure().asBoxed().equals(fieldDescription.getType().asErasure())
                      : fieldDescription.getDeclaringType().equals(fieldDescription.getType().asErasure());
              return new Dynamic(new ConstantDynamic(fieldDescription.getInternalName(),
                      fieldDescription.getDescriptor(),
                      new Handle(Opcodes.H_INVOKESTATIC,
                              CONSTANT_BOOTSTRAPS,
                              "getStaticFinal",
                              selfDeclared
                                      ? "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;"
                                      : "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Object;",
                              false), selfDeclared
                      ? new Object[0]
                      : new Object[]{Type.getType(fieldDescription.getDeclaringType().getDescriptor())}), fieldDescription.getType().asErasure());
          }