TaxonomyExtension.java
package com.taxonomy.shared.extension;
import java.io.Serializable;
/**
* Base contract for internal taxonomy extension points.
*/
public interface TaxonomyExtension extends Serializable {
/**
* Stable unique identifier within the owning {@link ExtensionKind}.
*/
String id();
/**
* Human-readable extension name safe for UI/REST exposure.
*/
String displayName();
/**
* Concise description safe for UI/REST exposure.
*/
default String description() {
return "";
}
/**
* Stable category of this extension.
*/
ExtensionKind kind();
/**
* Generic descriptor view safe for REST/UI exposure.
*/
default ExtensionDescriptor extensionDescriptor() {
return new ExtensionDescriptor(id(), displayName(), description(), kind());
}
}