"""L2P PDDL Type and Data Structure DefinitionsThis module defines core types and data classes used for representing components of PDDLdomains, problems, and plans. These include structured representations for predicates, actions,functions, domain/task metadata, and parameterized object lists."""fromcollectionsimportOrderedDictfromdataclassesimportdataclassfromtypingimportTypedDict,NewType,OptionalParameterList=NewType("ParameterList",OrderedDict[str,str])# {param_name: param_type}ObjectList=NewType("ObjectList",dict[str,str])# {obj_name: obj_type}
# Domain details data class including predicates and actions
[docs]@dataclassclassDomainDetails:name:strdomain_desc:strdomain_pddl:strrequirements:list[str]types:dict[str,str]|list[dict[str,str]]constants:dict[str,str]predicates:list[Predicate]# List of Predicate objectsfunctions:list[Function]actions:list[Action]# List of Action objects