Abstract siteswap