Annotation Interface Property


@Retention(RUNTIME) @Target(METHOD) public @interface Property
Marks a method as a script member of its enclosing Namespace. The registered name is the method name (combined with the namespace prefix), so obfuscated builds must keep these method names un-renamed — see the keep rule in proguard-rules.pro.

The role is inferred from the signature: a no-argument method is a variable (property); a method taking a List<String> of resolved arguments is a function. Document it with PropertyDescription (and, for functions, ArgumentDescription per argument).