ActivityStreams compliance: duration
Funkwhale adds a number of additional fields to its ActivityStreams object record without providing them in a namespace or schema. This isn't necessarily an issue outside LD parsing and LD Signature verification, however one of these fields "duration" is defined in the ActivityStreams vocabulary and according to that specification it "MUST" be expressed by an xsd:duration as defined in https://www.w3.org/TR/xmlschema11-2 section 3.3.6. Funkwhale appears to send this as a normal integer representing seconds and will be marked invalid and activities possibly rejected by strict ActivityStreams parsers.
There are a couple of ways this could be fixed. One is to be made compliant (e.g. an audio lasting 45 seconds would be encoded as 'PT45S'). Parsing these attributes is quite specific and this would probably not be a simple change; however this would be the most correct/conforming solution. Another way (quick fix) might be to disconnect the current value from the 'duration' attribute and perhaps call it 'rawDuration' or 'duration_seconds' or something which does not conflict with the already defined property.