class_name SocialConsequenceDefinition extends Resource @export var consequence_id: StringName @export var display_name: String @export_multiline var description: String @export var event_type_id: StringName @export var relationship_dimension_id: StringName @export var parameters: Dictionary = {} func validate() -> Array[String]: var errors: Array[String] = [] if consequence_id.is_empty(): errors.append("consequence_id is empty") if display_name.is_empty(): errors.append("display_name is empty for social consequence '%s'" % consequence_id) if event_type_id.is_empty(): errors.append("event_type_id is empty for social consequence '%s'" % consequence_id) if relationship_dimension_id not in RelationshipStateRecord.DIMENSIONS: errors.append( ( "social consequence '%s' references unknown relationship dimension '%s'" % [consequence_id, relationship_dimension_id] ) ) for error in DefinitionParameterValidator.validate( parameters, "Social consequence '%s'" % consequence_id ): errors.append(error) return errors