class_name CapabilityTagDefinition extends Resource const DOMAIN_ACTOR := &"actor" const DOMAIN_TARGET := &"target" const DOMAIN_ITEM := &"item" const DOMAIN_RESOURCE := &"resource" const DOMAIN_STORAGE := &"storage" const VALID_DOMAINS := [ DOMAIN_ACTOR, DOMAIN_TARGET, DOMAIN_ITEM, DOMAIN_RESOURCE, DOMAIN_STORAGE, ] @export var tag_id: StringName @export var display_name: String @export var domain: StringName func validate() -> Array[String]: var errors: Array[String] = [] if tag_id.is_empty(): errors.append("tag_id is empty") if display_name.is_empty(): errors.append("display_name is empty for '%s'" % tag_id) if domain not in VALID_DOMAINS: errors.append("domain '%s' is invalid for '%s'" % [domain, tag_id]) return errors