The title is a bit of clickbait, but I think it's justified.
How did I came to ask this question
In programming, many programming languages have concepts of a hierarchy of numerical types. Often times there would be a numerical type to serve as a supertype of integers, reals, rationals and whatever other kind of numbers that particular language happens to have. This supertype is often called just the number, the properties it has are typically entirely at the mercy of the language designers (i.e. they seem to be arbitrary or motivated by language implementation).
At first, I tried to imagine what would be the next possible step in the hierarchy of familiar numerical types: complex <:
reals <:
rationals <:
integers <:
natural numbers, but nothing comes to mind. More so, in almost no programming language it is the case that, for example, an integer is a kind of rational or a rational is a kind of integer. But they often share some properties of the number type I mentioned earlier.
The question proper
Searching for different kinds of numbers in mathematics, I came to realize that there are a great many of mathematical objects eventually called "numbers" (of some kind). For example, p-ary numbers, half-integers, infinitesimals, and really lots, lots more. The common properties I could extract from the description are that these objects are typically equipped with two binary operations (from field axioms) and order relation, although sums and products wildly vary in their behaviour. Other properties may eventually appear or disappear, depending on the particularities of the numeric type in question. But this cannot be enough to select only numbers! There are other fields which have all the same properties. Then how do I distinguish numbers from non-numbers?
The answer I came up with so far
So far, the only "definition" I could think of is that numbers are such sets, where properties of set elements are immaterial (as in urelements). This will, however, classify some groups, rings and fields, which aren't usually called "numbers" as numbers, but will definitely exclude fields of matrices, computable functions, polynomials etc. Is this a problematic answer? Is it outright wrong?