The final form of the #GoActivityPub library that deals with the processing of Activities will most likely be a state machine with pluggable states based on "activity type" x "object type" pairs.
This ensures calling code can inject its own processing if it has custom vocabulary, or fallback to the ActivtiyPub specification defaults.
How to combine the two without having conflicts might be more difficult though.