this is how all other software work, but i believe any public functions should be standardized across registrars, or at least the most used/important functions that i could think in it now could be :
getDomainInfo(), return domain info it can include some subfunction like getContact()
getContacts(), to get all or only one contact type
updateContact(), to update all contact or only one contact
getNameservers(), to get nemaservers return data should be like ["ns1" => xxxxx, "ns" => xxxxx, "ns"=> xxx, ...ect]
updateNameservers(), to update nameserver, $vars data should a list of nameservers ["ns1" => xxxxx, "ns" => xxxxx, "ns"=> xxx, ...ect]
getEppCode(), return string
updateEppCode(),
getLockSettings(),
updateLockSettings(),
ResendIRTPVerificationEmail(), to resend Verification emails
RegisterDomain(), function to send registration action to registrar, normally it called inside addService()
TrasferDomain(), function to send transfer action to registrar, normally it called inside addService()
RenweDomain(), function to send renew action to registrar, normally it called inside renewService()
DeleteDomain(), some registrar support release/delete command.
RestoreDomaine() some registrar support restore domain,
CreateChildNameServer(), used to create child namserver,
UpdateChildNameServer(), used to update child namserver info.
DeleteChildNameServer(), used to delete child namserver
and we must add function also for domain forwarding, email forwarding, dns management.