We need to make it possible for Wikibase Editors to save a statement that includes a local item and a federated property.
Saving a statement through the Wikibase item page UI uses the wbsetclaim API action. Since we can assume to only have a single source for properties, there is no need to store any information about the federated property source when saving. On the other hand, we should make sure that the solution we're building does not prevent us from having both local and federated properties in the future. Either way we should document our decision thoroughly.
SetClaim uses ChangeOpStatement to add statements to an entity, which in turn uses SnakValidator to ensure that added statements are valid. This validator (or its dependencies) will need to be able to deal with federated properties. Once the ChangeOp is successfully applied EntitySavingHelper is used to save the modified entity.