package com.laytonsmith.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * This is annotated on classes of functions, or individual functions to indicate that they * are part of the core API. This annotation has both a practical meaning, and * a legal meaning. Functions tagged with this annotation are unable to be overridden * by external code, both for consistency reasons and security reasons. Additionally, * any implementation of MethodScript must correctly implement all of the functions * labelled as core in order to be considered a valid implementation. * * This also has a legal purpose. All functions tagged as part of the core fall under the * special contribution license, and any modifications by third parties must be * released of all copyrights. */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface core { }